package com.enums;

import com.model.TSysOrg;
import com.modeldiy.Selector;

import java.util.ArrayList;
import java.util.List;

public enum OrgType {
	
	/** 海南国租  0 */
	NONORG {
		@Override
		public String toString() {
			return "海南国租";
		}
	}, /** 省级分公司  1 */
	SELFORG {
		@Override
		public String toString() {
			return "分公司";
		}
	},
	/** 配送中心  2 */
	COOORG {
		@Override
		public String toString() {
			return "配送中心";
		}
	},
	/** 配送点  3 */
	SPEORG {
		@Override
		public String toString() {
			return "配送点";
		}
	};
	
	@Override
	public String toString(){
		return this.toString();
	}
	
	public Integer getValue(){
		return ordinal();
	}
	
	/**
	 * 获取对应枚举数据如果没有就默认第一个
	 * @param value 
	 * @return
	 */
	public static OrgType valueOf(Integer value){
		OrgType[] OrgTypes=OrgType.values();
		if(value==null){
			return OrgTypes[0];
		}
		for (OrgType orgType : OrgTypes) {
			if (value.equals(orgType.getValue())) {
				return orgType;
			}
		}
		return OrgTypes[0];
	}

	public static List getSelect(TSysOrg tSysOrg){
		List list=new ArrayList<OrgType>();
		if(tSysOrg==null){
			Selector selector=new Selector();
			selector.setId(OrgType.NONORG.getValue());
			selector.setName(OrgType.NONORG.toString());
			list.add(selector);
			return list;
		}
		OrgType[] objs=OrgType.values();
		for (OrgType obj : objs) {
			//选出当前组织架构以下的组织架构
			if(tSysOrg.getOrgType()<obj.getValue()){
				Selector selector=new Selector();
				selector.setId(obj.getValue());
				selector.setName(obj.toString());
				list.add(selector);
			}
		}
		return list;
	}
	public static List getSelect(){
		List list=new ArrayList<OrgType>();
		OrgType[] objs=OrgType.values();
		for (OrgType obj : objs) {
			Selector selector=new Selector();
			selector.setId(obj.getValue());
			selector.setName(obj.toString());
			list.add(selector);
		}
		return list;
	}
}
